package com.cicigodd.brick.plug.system.auth.api;


import com.cicigodd.brick.plug.common.entity.LoginUser;

/**
 * 当前登陆用户相关的一系列方法
 *
 * @author cicigodd
 * @date 2022/09/23 08:42:00
 */
public interface AuthServiceApi {


    /**
     * 获取当前登陆用户的token
     * @return 当前用户的token或null
     */
    String getToken();

    /**
     * 获取当前登陆用户
     * @return 当前登陆用户信息
     */
    LoginUser getLoginUser();

    /**
     * 获取是否是超级管理员的标识
     * @return
     */
    boolean getSuperAdminFlag();

    /**
     * 判断当前用户是否登录
     * @return
     */
    boolean hasLogin();

    /**
     * 校验jwt token的正确性，调用jwt工具类相关方法校验
     * 第一是jwt过期了，第二是用户随便写的错误token，第三种是token正确，token正确不会抛出异常
     * @param token 用户的token
     */
    void validateToken(String token);

}
